package com.siterwell.push.dao;

import com.siterwell.push.entity.SubDevAddLog;
import com.siterwell.push.util.ParameterMap;
import net.thxjj.sitermodel.Device;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DeviceDao {

    public Device getDeviceInfo(String device_id);
    public List<Device> getDeviceList(@Param("imei")String imei, @Param("prod_key")String prod_key, @Param("deviceStatusFilters")List<Long>deviceStatusFilters, @Param("netStatusFilters")List<Long>netStatusFilters);
    public void saveDevice(List<Device> list);
    public void saveSingleDevice(Device device);
    public List<Device> getAllDeviceList();
    public void updateDeviceOnLine(ParameterMap pm);
    public void updateDeviceOffLine(ParameterMap pm);
    public List<ParameterMap> getStaticsNetStatus();
    public List<ParameterMap> getStaticsSoftWare();
    public List<ParameterMap> getStaticsHardWare();
    public void updateDeviceHeartTime(@Param("heart_time")long heart_time,@Param("device_id")String device_id);
    public List<Device> getDeviceListByProductId(@Param("prod_key")String prod_key);
    public void setDeviceOut(@Param("device_id")String device_id);
    public List<Device> getDeviceListByTimeBefore(@Param("prod_key")String prod_key,@Param("end_time")long end_time);
    public List<Device> getDeviceListByTime(@Param("prod_key")String prod_key,@Param("start_time")long start_time,@Param("end_time")long end_time);
    public void delDevice(@Param("device_id")String device_id);

    public void saveSubDevice(SubDevAddLog subDevAddLog);
}